package com.info33.platform.system.dto;

import com.info33.platform.system.entity.SysConfig;
import com.info33.platform.system.entity.SysTenant;
import com.info33.platform.system.entity.SysTenantMenu;
import com.info33.platform.system.entity.SysUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * 系统 - 租户
 *
 * @author admin
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class SysTenantDTO extends SysTenant {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户信息")
    @NotEmpty(groups = {SysTenantDTO.SaveTenant.class}, message = "租户信息不能为空")
    private List<SysUser> userList;

    @ApiModelProperty(value = "下发菜单信息")
    @NotEmpty(groups = {SysTenantDTO.SaveTenant.class}, message = "下发菜单不能为空")
    private List<SysTenantMenu> menuList;

    @ApiModelProperty(value = "配置信息")
    @NotEmpty(groups = {SysTenantDTO.SaveTenant.class}, message = "配置信息不能为空")
    private List<SysConfig> configList;

    /*下发菜单信息-新增*/
    @ApiModelProperty(value = "下发菜单信息-新增")
    private List<SysTenantMenu> menuListAdd;
    /*下发菜单id集合-删除*/
    @ApiModelProperty(value = "下发菜单id集合-删除")
    private List<Long> menuIdDelete;

    @ApiModelProperty(value = "app 菜单id 集合")
    private List<Long> appMenuIds;

    @ApiModelProperty(value = "app 菜单id 集合")
    private List<Long> sysAppMenuIds;

    @ApiModelProperty(value = "app 菜单id 去除的集合")
    private List<Long> appMenuIdsRemove;

    @ApiModelProperty(value = "app 菜单id 去除的集合")
    private List<Long> sysAppMenuIdsRemove;

    public interface SaveTenant {
    }

    public interface UpdateTenant {
    }

}